草庐IT

c++ - GMock : How to return mock class variable as the return value

全部标签

c++ - 为 gmock 自动生成模拟类

我正在使用gmock进行单元测试C++代码。我没有使用gtest框架。我正在使用VisualStudio2008的内置测试框架。现在我的问题是我必须手动为真实类编写模拟类来进行单元测试。例如,如果我有一个具有5个函数的类,那么我必须编写具有5个函数的MockAClass。有什么办法可以自动生成这些类。classAClass{public:virtualintAFunction(){return5;}virtualintAFunctionWithArguments(intx){returnx;}classMockAClass:publicAClass{public:MOCK_METHOD

c++ - 为 gmock 自动生成模拟类

我正在使用gmock进行单元测试C++代码。我没有使用gtest框架。我正在使用VisualStudio2008的内置测试框架。现在我的问题是我必须手动为真实类编写模拟类来进行单元测试。例如,如果我有一个具有5个函数的类,那么我必须编写具有5个函数的MockAClass。有什么办法可以自动生成这些类。classAClass{public:virtualintAFunction(){return5;}virtualintAFunctionWithArguments(intx){returnx;}classMockAClass:publicAClass{public:MOCK_METHOD

C++开发测试工具gmock的安装与使用超详解

目录一、gmock介绍二、gmock下载三、gmock配置3.1打开解决方案3.2进行相应设置3.3目标程序的配置四、测试Demo五、常见问题一、gmock介绍gmock是google公司推出的一款开源的白盒测试工具。gmock是个很强大的东西,测试一个模块的时候,可能涉及到和其他模块交互,可以将模块之间的接口mock起来,模拟交互过程。其作用就类似白盒测试中的打桩的概念。google开源的跨平台C++单元测试框架,是为在不同平台上为编写C++测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化、”死亡测试”等等。GoogleMock(简称gmock)是Google在2008年推出的一套

c++ - 匹配作为 void* 与 GMock 传递的 C 样式数组

我正在尝试模拟这样的功能:intwrite(intfd,constvoid*buffer,size_tsize,boolsomething)我想检查缓冲区传递的数据的正确性(第一个和最后一个参数对测试不重要)。很少有好的匹配器可以帮助我们做到这一点,即ElementsAreArray。如果指针是例如char*,那么就简单了:EXPECT_CALL(myMock,write(_,NotNull(),expectedSize,_).With(Args(ElementsAreArray(dummyArray));问题:void*不能取消引用。因此,它无法与ElementsAreArray匹配

c++ - 使用 Gmock 模拟参数化构造函数

我有类要模拟,但它没有默认构造函数。我无法更改源代码,所以有什么方法可以使用Gmock模拟参数化构造函数 最佳答案 是的。只需让Mock的构造函数使用正确的参数调用模拟类的构造函数:classbase_class{public:base_class(int,int){}virtualintfoo(int);};classbase_mock:publicbase_class{public:base_mock():base_class(23,42){}MOCK_METHOD1(foo,int(int));};甚至classbase_mo

c++ - 如何对重载运算符使用 gmock MOCK_METHOD?

我是googlemock(和StackOverflow)的新手。我在googlemock中使用MOCK_METHODn时遇到问题,我相信这个函数被广泛使用。这是我所做的。我有一个抽象类Foo,带有虚拟重载的operator[]:classFoo{public:virtual~Foo(){};virtualintoperator[](intindex)=0;}我想使用googlemock来获取MockFoo:classMockFoo:publicFoo{public:MOCK_METHOD1(operator[],int(intindex));//Thecompilerindicates

c++ - 模拟非虚方法 C++ (gmock)

我有课classCSumWnd:publicCBaseWnd{private:boolMethodA()}请你帮助如何模拟MethodA()而不使虚拟,没看懂hi-perfdependencyinjection的概念 最佳答案 这意味着您必须将生产代码模板化。使用您的示例:CSumWind类定义:classCSumWnd:publicCBaseWnd{private:boolMethodA()};模拟CSumWnd类定义:classMockCSumWnd:publicCBaseWnd{private:MOCK_METHOD(Meth

c++ - 如何在gmock中指定连续返回?

在Mockito中,我们可以指定多个返回值,例如(取自here)://youcansetdifferentbehaviorforconsecutivemethodcalls.//Laststubbing(e.g:thenReturn("foo"))determinesthebehavioroffurtherconsecutivecalls.when(mock.someMethod("somearg")).thenReturn(newRuntimeException()).thenReturn("foo");//Thereisashorterwayofconsecutivestubbin

c++ - gtest 和 gmock 有什么区别?

我试图了解google-mock的用途,Google'sC++mockingframework.我之前已经使用过gtest,但我仍然无法理解gmock是什么。为什么我们需要它?gtest用于单元测试。如果unittesting需要gmock那么我们需要gmock做什么? 最佳答案 “GoogleMock本身并不是一个测试框架。相反,它需要一个用于编写测试的测试框架。GoogleMock与GoogleTest无缝协作。它附带了一份GoogleTestbundle。从版本1.1.0开始,您也可以将它与您选择的任何C++测试框架一起使用。

c++ - gmock 设置默认操作/ON_CALL 与 EXPECT_CALL

我不明白ON_CALL和EXPECT_CALL使用时的区别指定默认操作。到目前为止,我注意到/了解到有两种方法可以调整模拟的默认操作:ON_CALL(mock,methodX(_)).WillByDefault(Return(0x01));或EXPECT_CALL(mock,methodX(_)).WillRepeatedly(Return(0x01));谁能给我解释一下:两种方法的区别每个人的起起落落什么时候适合使用它们(什么样的设置...) 最佳答案 这两种说法之间存在细微但显着的差异。EXPECT_CALL对模拟调用设置期望。